---
title: InputElement 输入元素
icon: TextCursorInput
relatedFile: app/src/core/render/domElement/inputElement.tsx
---

该服务主要用于在图形画布（canvas）上提供临时的文本输入功能，以解决canvas本身不支持直接文本输入的问题。它通过在页面上动态创建并定位HTML的`<input>`或`<textarea>`元素，使其透明地覆盖在canvas的指定位置，从而模拟出原生的输入体验。

## 功能概述

### 单行文本输入

提供创建单行文本输入框的能力。该输入框会根据内容自动调整宽度，并处理焦点管理、默认值设置、内容变更回调、以及外部点击、滚轮事件和键盘事件（如回车键提交、Tab键阻止默认行为）以确保用户交互的顺畅。

### 多行文本输入

提供创建多行文本输入框的能力。该输入框能根据内容自动调整高度和宽度，并处理与单行输入框类似的交互逻辑，包括焦点管理、默认值、内容变更、外部事件和键盘事件。特别地，它还支持Tab键插入制表符、Escape键取消编辑，并根据用户设置处理回车键的换行或退出编辑行为。

### 编辑反馈效果

包含内部方法用于在文本编辑成功或失败时，触发视觉反馈效果，例如成功时的实体虚线提示效果和失败时的实体抖动效果，并弹出提示信息。
